﻿<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="keywords" content="百度地图,百度地图API，百度地图自定义工具，百度地图所见即所得工具" />
<meta name="description" content="百度地图API自定义地图，帮助用户在可视化操作下生成百度地图" />
<title>百度地图API自定义地图</title>
<!--引用百度地图API-->
<style type="text/css">
    html,body{margin:0;padding:0;}
    .iw_poi_title {color:#CC5522;font-size:14px;font-weight:bold;overflow:hidden;padding-right:13px;white-space:nowrap}
    .iw_poi_content {font:12px arial,sans-serif;overflow:visible;padding-top:4px;white-space:-moz-pre-wrap;word-wrap:break-word}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=hiFGULKPw2WBszF0CDj9z7HdQlMGoDFZ"></script>
<script src="../lib/jquery.min.js"></script>
</head>

<body>
  <!--百度地图容器-->
  <div style="width:100%;height:670px;border:#ccc solid 0px;" id="dituContent"></div>
</body>
<script type="text/javascript">
    //创建和初始化地图函数：
    function initMap(){
        createMap();//创建地图
        setMapEvent();//设置地图事件
        addMapControl();//向地图添加控件
    }
    
    //创建地图函数：
    function createMap(){
        var map = new BMap.Map("dituContent", { minZoom: 9, maxZoom: 18 });//在百度地图容器中创建一个地图
         var point = new BMap.Point(111.592827, 30.897726);//定义一个中心点坐标
        map.centerAndZoom(point,9);//设定地图的中心点和坐标并将地图显示在地图容器中
        window.map = map;//将map变量存储在全局
        map.setMapStyle({ style: 'grayscale' });
    }
    
    //地图事件设置函数：
    function setMapEvent(){
        map.enableDragging();//启用地图拖拽事件，默认启用(可不写)
        map.enableScrollWheelZoom();//启用地图滚轮放大缩小
        map.enableDoubleClickZoom();//启用鼠标双击放大，默认启用(可不写)
        map.enableKeyboard();//启用键盘上下左右键移动地图
    }
    
    //地图控件添加函数：
    function addMapControl(){
        //向地图中添加缩放控件
    var ctrl_nav = new BMap.NavigationControl({anchor:BMAP_ANCHOR_TOP_LEFT,type:BMAP_NAVIGATION_CONTROL_LARGE});
    map.addControl(ctrl_nav);
        //向地图中添加缩略图控件
    var ctrl_ove = new BMap.OverviewMapControl({anchor:BMAP_ANCHOR_BOTTOM_RIGHT,isOpen:1});
    map.addControl(ctrl_ove);
        //向地图中添加比例尺控件
    var ctrl_sca = new BMap.ScaleControl({anchor:BMAP_ANCHOR_BOTTOM_LEFT});
    map.addControl(ctrl_sca);
    }
    
    
    initMap();//创建和初始化地图
    getBoundary();

    function getBoundary(){       
        var bdary = new BMap.Boundary();
        bdary.get("宜昌市", function(rs){       //获取行政区域
            //map.clearOverlays();        //清除地图覆盖物       
            var count = rs.boundaries.length; //行政区域的点有多少个
            if (count === 0) {
                alert('未能获取当前输入行政区域');
                return ;
            }
            var pointArray = [];
            for (var i = 0; i < count; i++) {
                var ply = new BMap.Polygon(rs.boundaries[i], { strokeWeight: 4, strokeColor: "blue", fillColor: "none" }); //建立多边形覆盖物
                map.addOverlay(ply);  //添加覆盖物
                pointArray = pointArray.concat(ply.getPath());
                
            }    
            //map.setViewport(pointArray);    //调整视野               
        });   
    }
    var mnType = {
    "PP": "雨量站",
    "ZZ": "水位站",
    "ZQ": "水文站",
    "RR": "水库",
    "SS": "墒情站",
    "ZG": "地下水站"
    };
    var imgType = {
    "PP": "../static/h-ui.admin/images/map_yuliang.png",
    "ZZ": "../static/h-ui.admin/images/map_shuiwei.png",
    "ZQ": "../static/h-ui.admin/images/map_shuiwen.png",
    "RR": "../static/h-ui.admin/images/map_shuiku.png",
    "SS": "../static/h-ui.admin/images/map_shangqing.png",
    "ZG": "../static/h-ui.admin/images/map_dixiashui.png"
    };
    var imgid = {
    "PP": "../static/h-ui.admin/images/北山坡_meitu_1.jpg",
    "0060902720": "../static/h-ui.admin/images/北苑桥_meitu_2.jpg",
    "PP": "../static/h-ui.admin/images/果园一路_meitu_1.jpg",
    "0060902080": "../static/h-ui.admin/images/河心公园_meitu_2.jpg",
    "PP": "../static/h-ui.admin/images/黄河路_meitu_3.jpg",
    "0060903630": "../static/h-ui.admin/images/临江溪_meitu_4.jpg",
    "PP": "../static/h-ui.admin/images/龙康路_meitu_5.jpg",
    "PP": "../static/h-ui.admin/images/三峡大学_meitu_6.jpg",
    "PP": "../static/h-ui.admin/images/水月城_meitu_7.jpg",
    "PP": "../static/h-ui.admin/images/万达广场_meitu_8.jpg",
    "0060902100": "../static/h-ui.admin/images/万寿桥_meitu_9.jpg",
    "PP": "../static/h-ui.admin/images/五一广场_meitu_10.jpg",
    "PP": "../static/h-ui.admin/images/宜昌东站_meitu_11.jpg",
    "PP": "../static/h-ui.admin/images/宜昌商场_meitu_12.jpg",
    "PP": "../static/h-ui.admin/images/中心医院_meitu_13.jpg"
    };
  

 //调用增加点数据方法

    function addlele(markerArr1,width,height) {
        markerArr1 = JSON.parse(markerArr1);
            for (var i = 0; i < markerArr1.length; i++) {
                var json = markerArr1[i];
                var p0 = json.lgtd;
                var p1 = json.lttd;
                var list2 = "";

                var _a = json.Z.toFixed(2);
                var _b = json.oldZ;

                if (_a > _b) { list2 = "涨" }
                else if (_a == _b) { list2 = "平" }
                else { list2 = "落" }
                var point = new BMap.Point(p0, p1);
                var icon = { h: height, l: 0, lb: 9, t: 1, w: width, x: 6 };
                var iconImg = imgid[json.ST];
                var myIcon2 = new BMap.Icon(iconImg, new BMap.Size(99,56));
                var marker = new BMap.Marker(point, { icon: myIcon2 });

                var iw = createInfoWindow(markerArr1, i);
                var label = new BMap.Label("<div class='ditu_bj'>" + json.monitoring_point_name+"("+json.RVNM+")" + "水位："+ _a+"m  "+ list2 +"</div>", { "offset": new BMap.Size(icon.lb - icon.x + 15, -2) });
                marker.setLabel(label);
                map.addOverlay(marker);
                label.setStyle({ borderColor: "rgb(128, 128, 128)", color: "#2A96FF", cursor: "pointer" });
                    $(".BMap_Marker img").css('height','56px');
                    $(".BMap_Marker img").css('width','99px');

                (function () {
                    var index = i; var _iw = createInfoWindow(markerArr1, i);
                    var _marker = marker;
                    _marker.addEventListener("click", function (img) {

                        this.openInfoWindow(_iw);
                    });
                    _iw.addEventListener("open", function () {
                        _marker.getLabel().hide();
                    });
                    _iw.addEventListener("close", function () { _marker.getLabel().show(); });
                    label.addEventListener("click", function () { _marker.openInfoWindow(_iw); });
                    if (!!json.isOpen) {
                        label.hide();
                        _marker.openInfoWindow(_iw);
                    }
                })()
            }

    }

    //增加点数据信息窗口
    function createInfoWindow(markerArr1, i) {
            var json = markerArr1[i];
            var name = "<p>站点名："+ json.monitoring_point_name +"</p>";
            var tr =   "<p>时间："+ json.TT +"</p>";
            var sj =   "<p>水位："+ json.Z.toFixed(2)+"m</p>";
            var list2 = "";

            var _a = json.Z.toFixed(2);
            var _b = json.oldZ;

            if (_a > _b) { list2 = "涨" }
            else if (_a == _b) { list2 = "平" }
            else { list2 = "落" }
            //$(data).each(function (index, row) {

                //tr += "<tr><td>" + row.factor_name + "</td><td>" + row.datatime + "</td><td>" + row.avgvalue + "</td></tr>";
                //tr += row.factor_name + ":" + row.avgvalue + "<br />";
                
            //});
            var opts = {
                width: 500,     // 信息窗口宽度
                height: 200,     // 信息窗口高度
                title: "", // 信息窗口标题
                enableMessage: true,//设置允许信息窗发送短息
                message: ''
            }
            var imgsrc = imgPathdata(json.ST);
            var imgDom = "<div style='float:left; height:180px;width:120px'><img src='"+ imgsrc +"' width='120' height='180' ></div>";
            var htmldom = imgDom + "<div style='float:left;font-size: 17px;margin-left: 20px;width:350px;overflow-x: auto;line-height:24px;'>"+ name + tr + sj +"<p>"+list2+"</p></div>";
            var iw = new BMap.InfoWindow(htmldom, opts);
            return iw;
    }
  
        function imgPathdata(mn){
            var src = "";
            if(mn == 0 || mn == null || mn == ""){
               src = ""; 
            }else{
                
                $.ajax({
                    type:"post",
                    url:"/Img/GetImg?mn=" + mn,
                    async:false,
                    dataType:"json",
                    success:function(data){
                        if (data.length > 0) {
                            src =  data[0].ImgPath;
                        }else{
                            src =  "";
                        }
                        
                    }
                })
            }
            return src;
        }

        function allPoint(b) {
            var allOverlay = map.getOverlays();

            for (var i = 0; i < allOverlay.length ; i++) {
                allOverlay[i].toString()
                if (allOverlay[i].toString() == "[object Marker]") {
                    var point = allOverlay[i].getPosition(); //获取marker的位置
                    var name = allOverlay[i].getLabel().content;
                    if (name.indexOf(b) > 0) {
                        //alert("marker的名称是"+name);
                        //alert("marker的位置是" + point.lng + "," + point.lat); 
                        var point2 = new BMap.Point(point.lng, point.lat); //定义一个中心点坐标
                        map.centerAndZoom(point2, 15); //设定地图的中心点和坐标并将地图显示在地图容器中
                    }
                }

            }

        }

     map.addEventListener("zoomend", function () {
                var DiTu = this.getZoom();
                if (DiTu <= 12) {
                    $(".BMap_noprint").css('height','56px') 
                    $(".BMap_noprint").css('width','99px')
                    $(".BMapLabel").prev().css('height','56px');
                    $(".BMapLabel").prev().css('width','99px');

                    $(".BMap_Marker img").css('height','56px');
                    $(".BMap_Marker img").css('width','99px');
                }
                else if(DiTu <= 15 &&  DiTu>12){
                    $(".BMap_noprint").css('height','86px') 
                    $(".BMap_noprint").css('width','129px') 
                    $(".BMapLabel").prev().css('height','86px');
                    $(".BMapLabel").prev().css('width','129px');

                    $(".BMap_Marker img").css('height','86px');
                    $(".BMap_Marker img").css('width','129px');
                }  
                else if(DiTu <= 18 &&  DiTu>15){
                    $(".BMap_noprint").css('height','106px') 
                    $(".BMap_noprint").css('width','159px') 
                    $(".BMapLabel").prev().css('height','106px');
                    $(".BMapLabel").prev().css('width','159px');

                    $(".BMap_Marker img").css('height','106px');
                    $(".BMap_Marker img").css('width','159px');
                }        
            });


</script>
</html>